home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 1996 April
/
CHIP 1996 aprilis (CD06).zip
/
CHIP_CD06.ISO
/
hypertxt.arj
/
9406
/
BASIC1.CD
< prev
next >
Wrap
Text File
|
1994-11-27
|
22KB
|
377 lines
@VCA-Realizer 2.0@N
@VBASIC reneszánsz -- I.@N
A régebben közkedvelt, majd sokak által már
megmosolygott BASIC újból viszatér a PC-s számítástechnika
mindennapi gyakorlatába. A Microsoft hozta vissza, amikor
a programjaiba következetesen BASIC-szerû elemeket
csempészett be. ùgy tûnik, ismét foglalkozni kell a
BASIC-kel. Terveink szerint szentelünk néhány cikket eme
""öreg" -- harminc éve megalkotott -- nyelv reneszánszának.
@VAz úgy kezdôdött, hogy...@N
A BASIC természetesen(!) magyar szerzôtôl, Kemény Jánostól
ered, aki az amerikai Dartmouth egyetemének professzoraként
Thomas Kurtz-cal együtt fejlesztette ki ezt a programozási
nyelvet. Ekkor a Fortran volt a sztár, de ennek
elsajátítása és használata nem volt valami egyszerû. Az
1964-ben megalkotott nyelvet a kezdôknek szánták, ez a
nevébôl is kiderül: @VB@Neginner's @VA@Nll-purpose
@VS@Nymbolic @VI@Nnstruction @VC@Node, ami magyarul annyit
tesz, hogy kezdôk általános célú szimbolikus utasítás
kódja, azaz programnyelve. Persze az hogy kezdôk, azt is
jelentette, hogy gyorsan meg lehet tanulni. Igen, az elsô
verziókat úgy reklámozták, hogy fél nap alatt már komplett
programot lehet vele írni. A számítástechnika hôskorában
nagyon sok berendezés, amely programozható vezérlô
egysége(ke)t tartalmazott, BASIC-szerû nyelvet használt.
Ezzel próbálták a programozhatóságot közérthetôvé tenni.
Ez általában sikerült, így a kezelôk, akiknek egyike sem
számítástechnikai képesítésû emberként került kapcsolatba a
berendezésekkel, könnyen megbarátkozott a masinával, igen
hamar elsajátíthatta a programozást, tudta kezelni a gépet.
A BASIC egyszerûbb, mint az akkor már elterjedten használt
nyelvek, de természetesen sok tekintetben hasonlít is
rájuk. Egy szempontból azonban jelentôsen eltért. Míg az
akkori nyelvek egy fordítási folyamat eredményeként
jutottak futtatható állapotba, addig a BASIC interpreter
típusú nyelvként született meg. Ez azt jelenti, hogy a gép
az utasításokat azonnal értelmezi és végrahajtja. A géppel
egy beszélgetés, azaz egy interaktív fejlesztés valósítható
meg. Ha valami nem stimmel, be lehet tenni újabb utasítást,
s nem kell fordításra várni, a gép azonnal végigballag az
utasításainkon, értelmezve és végrehajtva azokat. A BASIC
segítségével közvetlen módban is adhatunk utasításokat,
ezeket azonnal végrehajtja, mintegy egysoros programként --
a mai fogalmaink szerint. A program így igen könnyen
megismerhetô, barátságos, hiszen nem kell minden egyes
módosítás után kivárni a fordítási és összeszerkesztési
folyamatot.
Amikor az elsô személyi számítógépek megjelentek a piacon,
a megalkotóik szintén a BASIC-et választották alapvetô
nyelvnek. Az elsô IBM PC is tartalmazott EPROM-ba égetett
BASIC-et. Késôbb ez kimaradt a gépekbôl, jelezve, hogy ez
nem Spectrum- és Commodore-szerû gép. A PC magasabbra
kezdett szárnyalni, és a rajta dolgozók egy része kezdte a
BASIC-et lebecsülni.
A Fortrant és a Cobolt is rátették már a nyolcbites
gépekre, de a PC-k között nem terjedtek el igazán. A Modula
és a Pascal szintén felkerült a mikrogépekre. Ez utóbbi két
nyelv azután a BASIC-kel együtt átvándorolt a PC-kre is. A
BASIC az ipari alkalmazások terén továbbra is teret kapott,
hiszen a szakmeberek korábbi mikrogépes gyakorlatukat
tudták folytatni a PC-s világban. Hazánkban nem terjedt el
az IBM PC EPROM-os és kazettás egységet vezérlô változata,
bár a muzeális XT-ken még esetleg fellelhetô. Egyes
elvadult ôs-BIOS-ok hajlamosak alaplaphiba esetén kiírni
azt, hogy nem találják a BASIC-et. Késôbb a program
floppyra költözött, majd igen gyorsan jött a
továbbfejlesztett változata BASICA néven, illetve a
Microsoft fejlesztésében GW-BASIC-ként. Ezek a programok a
mai szemmel nézve vajmi kevéssé voltak alkalmasak nagy
programok összehozására, mivel a sorrendet leíró sorszám és
az erre való hivatkozás nem segítette a program
érthetôségét. Ez, gondolom, a programkártyák sorszámának
lemásolásából került a nyelvbe, valamint így az
interpertert könnyebb megvalósítani. Az akkori gépek nem
voltak sprinterek és Kbyte-okban sem dúskáltak.
A GW-BASIC több évig tartotta magát, de nem volt alkalmas
strukturált és rekurzív programozásra. A felfutóban levô
Pascal lemosta a pályáról. Ennek ellenére a GW-BASIC után
feltûntek még BASIC-továbbfejlesztések, például a QBASIC és
a TurboBasic. Ezek felhagytak az interpretatív
megvalósítással, fordítóprogramként jelentek meg a piacon.
A QBASIC-et több méréstechnikai program, így az Assyst is
külsô programozási nyelveként használta. A QBASIC Windowsba
oltott változata a Visual Basic. A Borland által piacra
dobott TurboBasic kísértetiesen hasonlított az elsô Borland
Pascalra, de a késôbb Power Basicre keresztelt 2-es verzió
után a Borland leállt a fejlesztésével. Bár azt is lehetett
volna mondani, hogy majdnem minden OK volt benne, hiszen a
Turbo Pascal minden külsô jellegzetességével felruházták,
miközben belül a címkés hivatkozás mellett felülrôl
kompatibilis volt a GW-BASIC-kel. Kellemesen lehetett vele
fejleszteni, de úgy tûnik, mára teljesen elhalt.
A Windows megjelenésével a Windows alatti programok
fejlesztése az elsô idôszakban nehézkesen indult. A
programfejlesztések DOS alapon sokkal kényelmesebbek
voltak, hiszen bejáratott eszközökrôl volt szó. A Windows
alatti programfejlesztéseket elôször C-ben (Microsoft),
majd késôbb Pascalban (Borland) tudták fejleszteni. A
BASIC-vonal is megjelent a Microsoft színeiben Visual
Basicként és a Computer Associates-nél CA-Realizer néven.
A BASIC-et a Microsoft a WinWordbe és az Excelbe is
becsempészte, ezek makrónyelve a BASIC-en alapul.
A történeti áttekintés után ismerkedjünk meg elôször a
Computer Associates termékével!
@VCA-REALIZER 2.0@N
A Computer Associates International Inc. is kifejlesztette
több más, Windows alá írt programja mellett a maga BASIC
fejlesztôjét.
A program egy hatalmas dobozban lakozik. Ennek az az oka,
hogy a dokumentáció igen gazdag. A program univerzális,
úgynevezett Windows-OS/2 változatban található a lemezeken.
Ez azt jelenti, hogy ugyanaz a lemezcsomag szükséges mind
Windows, mind OS/2 alatti telepítéshez. A Windows alatti
telepítés során a program 638 file-t dolgoz fel, ehhez
tetemes idô szükséges, így lassú gépek esetén készüljünk
fel erre a hosszú akcióra. Igaz, telepíteni csak egy
alakalommal kell a CA-Realizert. A program különbözô
""kiépítésben" telepíthetô, 2,8 Mbyte-os minimális mérettôl
a 7,6 Mbyte-os, maximális helyfoglalásig.
A program egy saját ablakot nyit, ebben a fôprogram mellett
egy súgó (help) és több mintaprogram ikonja is feltûnik. A
mintaprogramok között két pénzügyi, ebbôl az egyeik
tôzsdepiac-demonstrációs program, a másik háztartási
kiadásaink vezetésére és grafikus ábrázolására alkalmas. A
játékokat két kártyajáték és egy labirintus program
képviseli. Az animációs mintát egy forgó földgömbbel
demonstrálják. Játékos kedvûek, ha kellôen gyors gépük van,
ezt a programot többször is elindíthatják, végül különbözô
helyen lévô ablakokban sok-sok földgömb foroghat a
képernyôn.
A CA-Realizer a BASIC program strukturált bôvítése. A
programnyelv 370 parancsot, illetve funkciót ismer. A
kézikönyv azt állítja, hogy kezdôk számára is érthetô ez a
nyelv. A Realizer segítségével korántsem úgy kell programot
fejleszteni, mint a régi BASIC programokkal: beírjuk a
sorszámot, az utasítást stb. Elôször is a sorszámot már a
TurboBasic is elfelejtette, bár még tudta kezelni. A
Realizer kifejezetten utálja a sorszámot, az ErrorLog
ablakban mindenféle goromba üzenettel jutalmazza azt, aki a
sorszám leírására vetemedik. De ezzel együtt sorszám
nélküli ""ôsrégi" BASIC program is írható, futtatható, sôt
lefordítható. Sajnos a tankönyvek kedvelt mintapéldja, a
@K10 LET A=5@N
@K20 PRINT A@N
@K30 STOP@N
ebben a környezetben mit sem ér. Ha a sorok elejérôl a
számozást az elôbbieknek megfelelôen elhagyjuk,
akkor sem jó. A LET utasítást is ki kell gyomlálnunk. A
program így leegyszerûsödik az alábbi módon:
Ez már ehetô a Realizer számára. A futtatás során egy
üzenet jelenik meg, sajnos nem az 5-ös, mint várnánk, hanem
az, hogy a program a STOP utasításig eljutott, és ott
megállt. Ha az ablakba írt üzenetet az OK gombbal
nyugtázzuk, akkor még mindig nem látjuk a várva várt 5-öst,
sehol sem tûnik fel. A @KWindow@N menü @KViewPrintLog@N
menüsorára kattintva a PrintLog ablakban tûnik fel a várva
várt számjegy.
A programot lefordíthatjuk -- ekkor a fenti kis nyúlfarknyi
programból egy 5417 byte-os EXE file-t készít a Realizer.
Ez a program közvetlenül indítható, de a Realizert ""magára
rántja". A futtatáskor sem látható a PRINT utasítás
eredménye, a beszivárgott Realizer segítségével kell a
@KPrintLog@N-ot kinyitni. Ebbôl az következik, hogy lehet
ôs-BASIC proramokat gyártani némi igazítással, de nem ez a
legkellemesebb megoldás. A régi programok átírása Realizer
alá biztosan nem lesz célunk, hiszen a Realizer és a
windowsos környezet sokkal látványosabb programok
összetákolását eredményezheti, mint bármilyen korábbi
képernyôbûvészet. A két megoldásban elhullajtott
izzadtságcseppek száma össze sem mérhetô, hiszen a Realizer
esetén ez legfeljebb abból fakad, hogy a tetszetôsbôl még
impozánsabbat varázsoljunk, korlátunk a fantáziánk.
A program futtatása más környezetben is lehetséges. A
Realizer erre kínál egy pompás lehetôséget. Hajlandó
installáló lemezt gyártani. Ekkor a lemezre a programon
kívül 4 file-t helyez el majdnem 1 Mbyte-nyi
helyfoglalással. Ha az installáló lemezen levô INSTALL
programot indítjuk, akkor a nagy programoktól megszokott,
de nem olyan színpompás installációban lesz részünk.
Felteszi az installáló program, hogy az általa javasolt,
vagy esetleg egy másik könyvtárba pakoljon, majd ennek
eldöntése után beköltözik a kívánt könyvtárba,
természetesen létrehozva azt. Ha a generálás elôtt
engedélyezzük, akkor -- ahogy azt illik -- automatikusan
ablakot készít a Windowsban programunknak. A végeredmény
tehát egy profi kinézetû program, insalláló lemezrôl
tölthetô formában. Ennek elkészítéséhez elég két kattintás
az egérrel a menük tengerének megfelelô pontjain.
Persze nem sikerül minden tökéletesen. A forgó földgömböt
ábrázoló animációs mintapélda automatikusan nem
költöztethetô installáló lemezre. A bitmap file-ok
hivatkozását, mivel az gyûjtô hivatkozás, nem kezeli
rendesen, így az installálás után közli a program, hogy
hiányzik egy file (több is, de az elsônél már leáll). Igaz,
a generálás elôtt már e hibára figyelmeztet. Pedig hibát
senki se vétett. A szükséges file-okat a file-hozzáadás
módszerével próbáltam megetetni vele. Sajnos egyenként nem
sikerült kijelölni a file-okat, az alkönyvtárban lévô 60
bitmap file azonnal hozzáragadt. Sebaj, majd a
szükségteleneket kivágom a kukába. Hiú remény, az ablak fix
méretû, benne csak a könyvtárszerkezet egy része fér el, a
file-név -- jelen esetben a lényeges információ -- már
kilóg jobbra, így nem látható. Bosszantó. Próbálkozzunk
máshol, ne az elôregyártott programok zegzugos és esetleg
szándékos zsákutcájában toporogjunk!
Az új stílusú programozásnál valami más történik, elôtérbe
kerülnek az ablakok, ikonok, elemek (objektumok). Ezt a
kavalkádot a FormDev program segítségével tarthatjuk
kordában. Itt egy rakás különbözô elemet definiálhatunk, a
gombtól az órán át az OLE hivatkozásig. (Ez utóbbi csak a
windowsos változatban értelmezett.) Az egyes elemek
elhelyezése és méretezése a Windowsos programokban már jól
megszokott keretrajzolás--elvonszolás--huzigálás
módszerekkel végezhetô. Ha a formalapunkat, melynek mérete
szintén megadható, teleraktuk a számunkra fontos elemekkel,
akkor egy képernyôtervünk vagy ablaktervünk elkészült.
Meglévô adatbázisainkhoz is készíthetünk igen egyszerûen
képernyôtervet. Ehhez a kiválasztott adatbázis mezôinek
megfelelô ablakokat ajánl a program. Van arra mód, hogy az
objektumainkat a késôbbiekben átrendezzük, módosítsuk.
Ebben az elhelyezéshez igazító funkciók és a rácsozat
segítenek. A lapot természetesen tetszôlegesen
színezhetjük. Amikor a külalakban már gyönyörködünk, akkor
következik a beltartalom elkészítése.
Az egyes elemekhez akcióleírásokat tudunk rendelni. A
programozónak nem azt kell végigizzadnia, hogy az egyes
elemek lekérdezgetését hogyan oldja meg, csupán azzal kell
törôdnie, hogy mi történjen akkor, ha mondjuk egy elemre a
középsô egérgombbal kattintunk. Ha valamit nem definiálunk,
akkor a program nem fog hibára futni, mint korábban egy
elcsomózatlan elágazás esetén, hanem csupán nem történik
semmi. A program feltételezi, hogy csak azzal kívánunk
foglalkozni, amit leírtunk, a többi érdektelen. îgy
legfeljebb kimarad valami -- de erre a próbák során
rájöhetünk -- és nincs hibaüzenetek hosszú sora, amitôl a
gyengébb idegzetû kezdô programozgató elveszti minden
életkedvét, majd más munkakör után néz.
Minden valamirevaló windowsos program a menük kavalkádjával
kápráztat el bennünket. Nincs gond, elég a menüszerkesztôt
meghívnunk, máris meghatározhatjuk csodálatos menünk
felépítését. A menüpontok alá meghatározásokat tehetünk,
sôt kreálhatunk almenüt, almeghatározásokkal egyetemben. Az
áttekinthetôséget egy elválasztó elem beiktatásával
javíthatjuk. Kell ennél több? Igen, lehetôség van -- más
programokban megszokott módon -- az aláhúzott
választókarakterek kijelölésére az ""&" jellel.
A megalkotott lapot futtathatjuk, azaz gyorsan
kipróbálhatjuk. Hibáinkat javíthatjuk, majd újra
próbálhatunk. A fordítás nem ellenôriz mindent, a próba
során minden lehetséges águnkon végig kell lépdelnünk
ahhoz, hogy egy-egy baki elôbukkanjon.
Ezekután nézzünk egy kicsit bele a programozási
lehetôségekbe! Az ôs-BASIC megalkotói elcsodálkozhatnak,
hogy most milyen utasításkészlettel rendelkezik egy magát
BASIC-nek tartó programnyelv. Rögtön az elején bukkanunk az
@KAnimate...@N csapatra. A Realizerben ezekkel az
utasításokkal igen egyszerûen lehet bittérképes képek
egymásutánját elôírni. A BEEP is hordoz némi érdekességet.
A Windowsban többféle hangjelzést definiáltak. Ezeket is
lehet hívni, így a Windowsban megszokott hangeffektusokat
(például hibás kattintás esetén megszólaló hang) tudjuk
programunkban is használni.
A bitmanipulációkat egy kis utasításcsokor támogatja. Az új
lehetôségek kapcsán került az utasításválasztékba a
boarddal kapcsolatos parancshalmaz. Érdekes parancs a Chart
utasításkompánia, melyek segítségével egyetlen utasítás
eredményeként akár egy grafikon készül el. A csapat egyes
utasításai a grafikon körülményeit szabják meg, így egy-két
utasítással definiálhatjuk a grafikon megjelenési formáját
a betûtípustók kezdve a színezésen át a vonalfajtáig.
Figyelmet érdemel a DDE-vel kapcsolatos kis csoport.
Segítségükkel vezérelhetjük a DDE-n keresztül bonyolódó
adatcserét. Az ôs-BASIC-ben, ahol a számítógépek még csak
egy karakterfajtát tudtak megjeleníteni, nem is merült fel
a fontok használatának gondolata. A Realizer esetén több
utasítás foglalkozik a fontkijelöléssel. A formátum- és a
menükészítés és -beállítás jónéhány módozata a program
segítségével is elérhetô, a @KForm...@N, illetve a
@KMenu...@N kezdetû utasításokkal. A képek kezelésével
kapcsolatos parancsok a DDE-hez hasonlóan a windowsos
környezetbôl erednek, s ugyanígy az egér- és
kurzorkezeléssel kapcsolatos utasítások is.
A Realizer tartalmaz egy CA-RET (Report Engine Technology)
programot. Ennek segítségével ""riportokat", azaz
kimutatásokat, összesítéseket -- akár leltáríveket --,
feldolgozásokat, például számlát készíthetünk. A program
adatbázissal mûködik együtt és ez az együttmûködés DDE-n
keresztül valósul meg. Az adatbázissal való kapcsolat
széleskörûen programozható. Válogatni lehet a mezôkbôl,
amelyek kiegészíthetôk, sôt átnevezhetôk. Az értelmezett
adatbázisok: dBase II, III, IV, CA-dBFast és CA-Clipper. Az
SQL-értelmezô ANSI formátumra és dBase-re egyaránt
beállítható.
Az adatbázis alapján a CA-RET-ben megfogalmazott utasítások
segítségével az eredmény -- grafikus kiegészítésekkel
együtt -- pillanatok alatt elkészül, megtekinthetô vagy
rögtön kinyomtatható.
A CA-RET-tel igen tetszetôs programok állíthatók elô, de
ahhoz, hogy jól is môködôjenek, nem elég néhány napos
ismerkedés. Minden programban óhatatlanul elôfordulnak
hibák, ezek kiszûrésére a Realizerben is segítségünkre siet
egy debbugger rendszer. Ha a programot ennek segítségével
futtatjuk, akkor a képernyô felsô részén egy újabb szalag
jelenik meg, amelyben a programot vezérlô gombok és az
egyes lépésekkel kapcsolatos kiírások jelennek meg. A
program lépésenkénti futtatása igen egyszerû. A változók
egy újabb ikonra kattintva ellenôrizhetôk, módosíthatók.
Lehetôségünk van töréspontok elhelyezésére, ezek
módosítására, törlésére.
A programot, avagy a programmal készített programjainkat
most már csak használnunk kell. A mintapéldák között egy
háztartási könyvelô programot is találhatunk, amellyel
nyilvántarthatjuk kiadásainkat. Különbözô szempontok
szerint grafikusan is megtekinthetjük kiadásainkat. Ha
pénzt nem is termel, de a takarékoskodásban segít ez a
demóprogram.
@KKrizsán György@N
@<9406\CA_INST.GIF>Lehet szûkített verziót is installálni@N
@<9406\CA_LOGO.GIF>A program így indul@N
@<9406\CA_FDEV.GIF>A formalap __ megtöltve minden jóval@N
@<9406\CA_PROJ.GIF>Semmi se tökéletes, az elôcsalogathatatlan file nevek@N
@<9406\CARET_F.GIF>Az adatbázis mezôinek kezelése@N
@<9406\CA_INV.GIF>Számlakészítés a CA_RET_tel@N
@<9406\CARET_W.GIF>A számla megtekintése@N
@<9406\CA_DEBUG.GIF>A program (jobbra lent) lépésenkénti futtatása@N
@<9406\CA_EXP.GIF>Az egyik mintapélda: háztartási könyvelôrendszer@N